home *** CD-ROM | disk | FTP | other *** search
- /*
- ==============================================================================
- WordUp Graphics Toolkit Version 5.0
- Demonstration Program 35
-
- Loads an image using wloadblock/wloadpak/wloadcel/wloadbmp/wloadpcx
- and saves the same image back out using wsaveblock, wsavepak, wsavecel,
- wsavebmp, and wsavepcx.
-
- *** PROJECT ***
- This program requires the file WGT5_WC.LIB to be linked.
-
- *** DATA FILES ***
- You must have the following data files in your executable dir:
- SAMPLE.BLK, SAMPLE.PAL
- WATCOM C++ VERSION
- ==============================================================================
- */
-
- #include <io.h>
- #include <fcntl.h>
- #include <wgt5.h>
-
- block sample_image; /* Contains our sample image */
- color pal[256];
- short oldmode;
-
- short image_handle; /* File handle used for finding file sizes */
- /* Note that all files store the same image data,
- and CEL, BMP, and PCX also store the palette. */
-
- void main(void)
- {
- if ( !vgadetected () )
- {
- printf("Error - VGA card required for any WGT program.\n");
- exit(0);
- }
- printf ("WGT Example #35\n\n");
- printf ("Several of WGT's image formats are demonstrated by loading and creating\n");
- printf ("bitmaps dynamically. Image file sizes are reported so you can compare the\n");
- printf ("the compression techniques. Press a key to end the program.\n");
- printf ("\n\nPress any key to continue.\n");
- getch ();
-
- oldmode = wgetmode ();
- vga256 ();
-
- wloadpalette("sample.pal", pal); /* Load the palette for the image
- formats that don't store one */
- wsetpalette(0, 255, pal);
-
- wsavepalette ("output.pal", pal); /* Save the palette to a different file */
-
- wtextcolor(1);
-
- sample_image = wloadblock ("sample.blk"); /* Load the image */
- wputblock (0, 0, sample_image, 1); /* Display the image */
- wgtprintf (0, 38, NULL, "BLK");
- wsaveblock ("output.blk", sample_image); /* Save in BLK format */
- wsavepak ("sample.pak", sample_image); /* Save into PAK format */
-
- wfreeblock (sample_image); /* Free the image */
-
- sample_image = wloadpak ("sample.pak");
- wputblock (50, 0, sample_image, 1);
- wgtprintf (50, 38, NULL, "PAK");
-
- wsavecel ("sample.cel", sample_image, pal); /* Save into CEL format */
- wfreeblock (sample_image);
-
- sample_image = wloadcel ("sample.cel", pal);
- wputblock (100, 0, sample_image, 1);
- wgtprintf (100, 38, NULL, "CEL");
- wsavebmp ("sample.bmp", sample_image, pal); /* Save into BMP format */
- wfreeblock (sample_image);
-
- sample_image = wloadbmp ("sample.bmp", pal);
- wputblock (150, 0, sample_image, 1);
- wgtprintf (150, 38, NULL, "BMP");
- wsavepcx ("sample.pcx", sample_image, pal); /* Save into PCX format */
- wfreeblock (sample_image);
-
- sample_image = wloadpcx ("sample.pcx", pal);
- wputblock (200, 0, sample_image, 1);
- wgtprintf (200, 38, NULL, "PCX");
- wfreeblock (sample_image);
-
- wgtprintf (0, 100, NULL, "File Sizes:");
-
- image_handle = open ("sample.blk", O_RDONLY);
- wgtprintf (8, 108, NULL, "BLK - %lu", filelength (image_handle));
- close (image_handle);
-
- image_handle = open ("sample.pak", O_RDONLY);
- wgtprintf (8, 116, NULL, "PAK - %lu", filelength (image_handle));
- close (image_handle);
- unlink ("sample.pak");
-
- image_handle = open ("sample.cel", O_RDONLY);
- wgtprintf (8, 124, NULL, "CEL - %lu", filelength (image_handle));
- close (image_handle);
- unlink ("sample.cel");
-
- image_handle = open ("sample.bmp", O_RDONLY);
- wgtprintf (8, 132, NULL, "BMP - %lu", filelength (image_handle));
- close (image_handle);
- unlink ("sample.bmp");
-
- image_handle = open ("sample.pcx", O_RDONLY);
- wgtprintf (8, 140, NULL, "PCX - %lu", filelength (image_handle));
- close (image_handle);
- unlink ("sample.pcx");
-
- unlink ("output.pal");
- unlink ("output.blk");
-
-
- getch ();
- wsetmode (oldmode);
- }
-